Stress testing has long been performed as part of the quality control process for computer hardware and/or software. During stress testing, the system is stressed in different ways and the response is recorded and analyzed, both for speed and accuracy.
As part of system stress testing, it is oftentimes necessary for the system load to vary between high stress levels and low stress levels in order to simulate real world conditions and/or to test the limits of the system. In the prior art, the stress test is typically allowed to run until a stop event, which may be the completion of the test or a premature termination of the test due to, for example, a system crash. During the time when the stress test is performed, data is logged. When the stop event is encountered, a post-run analysis is performed. That is, the logged data is analyzed after the testing terminates in order to ascertain the performance of the system and the cause for the premature termination, if any.
As systems become more complex, it is not uncommon for a stress test to last the entire day or even multiple days. If the system behaves unacceptably within the first few hours but the test is allowed to proceed until completion before the test data is analyzed, days may be wasted before the problem is uncovered. Furthermore, the execution environment of many hardware and/or software involves the use of transient data and states. If the test is halted at the moment the system begins to behave unacceptably or shortly thereafter, some or much of the transient data and/or states information reflects the condition that cause the error. By retrieving this transient data and/or states information, the source of error may be more rapidly and/or accurately determined. On the other hand, if the test is allowed to proceed much further, such as to completion to facilitate post-run analysis, much or all of the transient data and/or state information related to the error may have been irretrievably lost and is thus of little help to the determination of the source of error.